{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入一些常用包\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "%matplotlib inline\n",
    "plt.style.use('fivethirtyeight')\n",
    "\n",
    "#解决中文显示问题，Mac\n",
    "%matplotlib inline\n",
    "from matplotlib.font_manager import FontProperties\n",
    "\n",
    "plt.rcParams['figure.figsize'] = (10.0, 4.0) # 设置figure_size尺寸\n",
    "plt.rcParams['image.interpolation'] = 'nearest' # 设置 interpolation style\n",
    "plt.rcParams['image.cmap'] = 'gray' # 设置 颜色 style\n",
    "plt.rcParams['savefig.dpi'] = 100 #图片像素\n",
    "plt.rcParams['figure.dpi'] = 100 #分辨率\n",
    "plt.rcParams['font.family'] = ['Arial Unicode MS'] #正常显示中文"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 01 特征理解"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SetID</th>\n",
       "      <th>Job Code</th>\n",
       "      <th>Eff Date</th>\n",
       "      <th>Sal End Date</th>\n",
       "      <th>Salary SetID</th>\n",
       "      <th>Sal Plan</th>\n",
       "      <th>Grade</th>\n",
       "      <th>Step</th>\n",
       "      <th>Biweekly High Rate</th>\n",
       "      <th>Biweekly Low Rate</th>\n",
       "      <th>Union Code</th>\n",
       "      <th>Extended Step</th>\n",
       "      <th>Pay Type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>COMMN</td>\n",
       "      <td>0109</td>\n",
       "      <td>07/01/2009 12:00:00 AM</td>\n",
       "      <td>06/30/2010 12:00:00 AM</td>\n",
       "      <td>COMMN</td>\n",
       "      <td>SFM</td>\n",
       "      <td>00000</td>\n",
       "      <td>1</td>\n",
       "      <td>$0.00</td>\n",
       "      <td>$0.00</td>\n",
       "      <td>330</td>\n",
       "      <td>0</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>COMMN</td>\n",
       "      <td>0110</td>\n",
       "      <td>07/01/2009 12:00:00 AM</td>\n",
       "      <td>06/30/2010 12:00:00 AM</td>\n",
       "      <td>COMMN</td>\n",
       "      <td>SFM</td>\n",
       "      <td>00000</td>\n",
       "      <td>1</td>\n",
       "      <td>$15.00</td>\n",
       "      <td>$15.00</td>\n",
       "      <td>323</td>\n",
       "      <td>0</td>\n",
       "      <td>D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>COMMN</td>\n",
       "      <td>0111</td>\n",
       "      <td>07/01/2009 12:00:00 AM</td>\n",
       "      <td>06/30/2010 12:00:00 AM</td>\n",
       "      <td>COMMN</td>\n",
       "      <td>SFM</td>\n",
       "      <td>00000</td>\n",
       "      <td>1</td>\n",
       "      <td>$25.00</td>\n",
       "      <td>$25.00</td>\n",
       "      <td>323</td>\n",
       "      <td>0</td>\n",
       "      <td>D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>COMMN</td>\n",
       "      <td>0112</td>\n",
       "      <td>07/01/2009 12:00:00 AM</td>\n",
       "      <td>06/30/2010 12:00:00 AM</td>\n",
       "      <td>COMMN</td>\n",
       "      <td>SFM</td>\n",
       "      <td>00000</td>\n",
       "      <td>1</td>\n",
       "      <td>$50.00</td>\n",
       "      <td>$50.00</td>\n",
       "      <td>323</td>\n",
       "      <td>0</td>\n",
       "      <td>D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>COMMN</td>\n",
       "      <td>0114</td>\n",
       "      <td>07/01/2009 12:00:00 AM</td>\n",
       "      <td>06/30/2010 12:00:00 AM</td>\n",
       "      <td>COMMN</td>\n",
       "      <td>SFM</td>\n",
       "      <td>00000</td>\n",
       "      <td>1</td>\n",
       "      <td>$100.00</td>\n",
       "      <td>$100.00</td>\n",
       "      <td>323</td>\n",
       "      <td>0</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   SetID Job Code                Eff Date            Sal End Date  \\\n",
       "0  COMMN     0109  07/01/2009 12:00:00 AM  06/30/2010 12:00:00 AM   \n",
       "1  COMMN     0110  07/01/2009 12:00:00 AM  06/30/2010 12:00:00 AM   \n",
       "2  COMMN     0111  07/01/2009 12:00:00 AM  06/30/2010 12:00:00 AM   \n",
       "3  COMMN     0112  07/01/2009 12:00:00 AM  06/30/2010 12:00:00 AM   \n",
       "4  COMMN     0114  07/01/2009 12:00:00 AM  06/30/2010 12:00:00 AM   \n",
       "\n",
       "  Salary SetID Sal Plan  Grade  Step Biweekly High Rate Biweekly Low Rate  \\\n",
       "0        COMMN      SFM  00000     1              $0.00             $0.00   \n",
       "1        COMMN      SFM  00000     1             $15.00            $15.00   \n",
       "2        COMMN      SFM  00000     1             $25.00            $25.00   \n",
       "3        COMMN      SFM  00000     1             $50.00            $50.00   \n",
       "4        COMMN      SFM  00000     1            $100.00           $100.00   \n",
       "\n",
       "   Union Code  Extended Step Pay Type  \n",
       "0         330              0        C  \n",
       "1         323              0        D  \n",
       "2         323              0        D  \n",
       "3         323              0        D  \n",
       "4         323              0        M  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 引入第 1 个数据集 Salary_Ranges_by_Job_Classification\n",
    "salary_ranges = pd.read_csv('./data/Salary_Ranges_by_Job_Classification.csv')\n",
    "salary_ranges.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11c98dd68>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11c83aeb8>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制条形图\n",
    "salary_ranges['Grade'].value_counts().sort_values(ascending=False).head(10).plot(kind='bar')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11c7149e8>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11c82cc50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制饼图\n",
    "salary_ranges['Grade'].value_counts().sort_values(ascending=False).head(5).plot(kind='pie')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11ca20fd0>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11cb385c0>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制箱体图\n",
    "salary_ranges['Union Code'].value_counts().sort_values(ascending=False).head(5).plot(kind='box')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>dt</th>\n",
       "      <th>AverageTemperature</th>\n",
       "      <th>AverageTemperatureUncertainty</th>\n",
       "      <th>City</th>\n",
       "      <th>Country</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1743-11-01</td>\n",
       "      <td>6.068</td>\n",
       "      <td>1.737</td>\n",
       "      <td>Århus</td>\n",
       "      <td>Denmark</td>\n",
       "      <td>57.05N</td>\n",
       "      <td>10.33E</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1743-12-01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Århus</td>\n",
       "      <td>Denmark</td>\n",
       "      <td>57.05N</td>\n",
       "      <td>10.33E</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1744-01-01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Århus</td>\n",
       "      <td>Denmark</td>\n",
       "      <td>57.05N</td>\n",
       "      <td>10.33E</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1744-02-01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Århus</td>\n",
       "      <td>Denmark</td>\n",
       "      <td>57.05N</td>\n",
       "      <td>10.33E</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1744-03-01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Århus</td>\n",
       "      <td>Denmark</td>\n",
       "      <td>57.05N</td>\n",
       "      <td>10.33E</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           dt  AverageTemperature  AverageTemperatureUncertainty   City  \\\n",
       "0  1743-11-01               6.068                          1.737  Århus   \n",
       "1  1743-12-01                 NaN                            NaN  Århus   \n",
       "2  1744-01-01                 NaN                            NaN  Århus   \n",
       "3  1744-02-01                 NaN                            NaN  Århus   \n",
       "4  1744-03-01                 NaN                            NaN  Århus   \n",
       "\n",
       "   Country Latitude Longitude  \n",
       "0  Denmark   57.05N    10.33E  \n",
       "1  Denmark   57.05N    10.33E  \n",
       "2  Denmark   57.05N    10.33E  \n",
       "3  Denmark   57.05N    10.33E  \n",
       "4  Denmark   57.05N    10.33E  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 引入第 2 个数据集\n",
    "climate = pd.read_csv('./data/GlobalLandTemperaturesByCity.csv')\n",
    "climate.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 8235082 entries, 0 to 8599210\n",
      "Data columns (total 7 columns):\n",
      "dt                               object\n",
      "AverageTemperature               float64\n",
      "AverageTemperatureUncertainty    float64\n",
      "City                             object\n",
      "Country                          object\n",
      "Latitude                         object\n",
      "Longitude                        object\n",
      "dtypes: float64(2), object(5)\n",
      "memory usage: 502.6+ MB\n"
     ]
    }
   ],
   "source": [
    "climate.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AverageTemperature</th>\n",
       "      <th>AverageTemperatureUncertainty</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>8.235082e+06</td>\n",
       "      <td>8.235082e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>1.672743e+01</td>\n",
       "      <td>1.028575e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>1.035344e+01</td>\n",
       "      <td>1.129733e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-4.270400e+01</td>\n",
       "      <td>3.400000e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.029900e+01</td>\n",
       "      <td>3.370000e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>1.883100e+01</td>\n",
       "      <td>5.910000e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>2.521000e+01</td>\n",
       "      <td>1.349000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>3.965100e+01</td>\n",
       "      <td>1.539600e+01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       AverageTemperature  AverageTemperatureUncertainty\n",
       "count        8.235082e+06                   8.235082e+06\n",
       "mean         1.672743e+01                   1.028575e+00\n",
       "std          1.035344e+01                   1.129733e+00\n",
       "min         -4.270400e+01                   3.400000e-02\n",
       "25%          1.029900e+01                   3.370000e-01\n",
       "50%          1.883100e+01                   5.910000e-01\n",
       "75%          2.521000e+01                   1.349000e+00\n",
       "max          3.965100e+01                   1.539600e+01"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看字段的基本统计情况（只会显示数值型变量）\n",
    "climate.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dt                               0\n",
       "AverageTemperature               0\n",
       "AverageTemperatureUncertainty    0\n",
       "City                             0\n",
       "Country                          0\n",
       "Latitude                         0\n",
       "Longitude                        0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 移除缺失值\n",
    "climate.dropna(axis=0, inplace=True)\n",
    "\n",
    "# 检查缺失个数\n",
    "climate.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "111994"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 枚举所有变量值的数量\n",
    "climate['AverageTemperature'].nunique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11e293668>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x140947d68>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制直方图\n",
    "climate['AverageTemperature'].hist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/yongsenlin/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:8: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "  \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>dt</th>\n",
       "      <th>AverageTemperature</th>\n",
       "      <th>AverageTemperatureUncertainty</th>\n",
       "      <th>City</th>\n",
       "      <th>Country</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "      <th>year</th>\n",
       "      <th>Century</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>11925</th>\n",
       "      <td>1820-08-01</td>\n",
       "      <td>20.146</td>\n",
       "      <td>2.286</td>\n",
       "      <td>Ürümqi</td>\n",
       "      <td>China</td>\n",
       "      <td>44.20N</td>\n",
       "      <td>87.20E</td>\n",
       "      <td>1820</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11926</th>\n",
       "      <td>1820-09-01</td>\n",
       "      <td>15.331</td>\n",
       "      <td>1.775</td>\n",
       "      <td>Ürümqi</td>\n",
       "      <td>China</td>\n",
       "      <td>44.20N</td>\n",
       "      <td>87.20E</td>\n",
       "      <td>1820</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11927</th>\n",
       "      <td>1820-10-01</td>\n",
       "      <td>5.256</td>\n",
       "      <td>1.848</td>\n",
       "      <td>Ürümqi</td>\n",
       "      <td>China</td>\n",
       "      <td>44.20N</td>\n",
       "      <td>87.20E</td>\n",
       "      <td>1820</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11928</th>\n",
       "      <td>1820-11-01</td>\n",
       "      <td>-4.956</td>\n",
       "      <td>2.190</td>\n",
       "      <td>Ürümqi</td>\n",
       "      <td>China</td>\n",
       "      <td>44.20N</td>\n",
       "      <td>87.20E</td>\n",
       "      <td>1820</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11929</th>\n",
       "      <td>1820-12-01</td>\n",
       "      <td>-14.118</td>\n",
       "      <td>2.581</td>\n",
       "      <td>Ürümqi</td>\n",
       "      <td>China</td>\n",
       "      <td>44.20N</td>\n",
       "      <td>87.20E</td>\n",
       "      <td>1820</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              dt  AverageTemperature  AverageTemperatureUncertainty    City  \\\n",
       "11925 1820-08-01              20.146                          2.286  Ürümqi   \n",
       "11926 1820-09-01              15.331                          1.775  Ürümqi   \n",
       "11927 1820-10-01               5.256                          1.848  Ürümqi   \n",
       "11928 1820-11-01              -4.956                          2.190  Ürümqi   \n",
       "11929 1820-12-01             -14.118                          2.581  Ürümqi   \n",
       "\n",
       "      Country Latitude Longitude  year  Century  \n",
       "11925   China   44.20N    87.20E  1820       19  \n",
       "11926   China   44.20N    87.20E  1820       19  \n",
       "11927   China   44.20N    87.20E  1820       19  \n",
       "11928   China   44.20N    87.20E  1820       19  \n",
       "11929   China   44.20N    87.20E  1820       19  "
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 日期转换, 将dt 转换为日期，取年份, 注意map的用法\n",
    "climate['dt'] = pd.to_datetime(climate['dt'])\n",
    "climate['year'] = climate['dt'].map(lambda value: value.year)\n",
    "\n",
    "# 只看中国\n",
    "climate_sub_china = climate.loc[climate['Country'] == 'China']\n",
    "climate_sub_china['Century'] = climate_sub_china['year'].map(lambda x:int(x/100 +1))\n",
    "climate_sub_china.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x11e028b70>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x11da08cc0>],\n",
       "       [<matplotlib.axes._subplots.AxesSubplot object at 0x11e2cc2e8>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x11e2def28>]], dtype=object)"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11e030da0>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 为每个世纪（Century）绘制平均温度的直方图\n",
    "climate_sub_china['AverageTemperature'].hist(by=climate_sub_china['Century'],\n",
    "                                            sharex=True,\n",
    "                                            sharey=True,\n",
    "                                            figsize=(10, 10),\n",
    "                                            bins=20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x11d61bf98>"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1247ca5c0>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 按世纪来分组计算温度的均值\n",
    "climate_sub_china.groupby('Century')['AverageTemperature'].mean().plot(kind='line')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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gVgnh4iIiIjiQMyXaLr77rsxcuRIjB8/HgBQXV0NALBYLD77WSwWVFVVyX5PWVlZ7BIJAEgGIMT4GERERETxQoxpfFVSUhL085gGoffeey8+/PBD7Ny5E0aj0eczQfAN+ERRDNjmLdSJRG0Pu+OJiIioJxFiH18FEbPu+HvuuQevvfYatm/fjv79+3u25+fnAwBqamp89q+rqwtoHdVSYZJuhyYiIiLqcWIShN51113YunUrtm/fjiFDhvh81q9fP+Tn52P37t2ebS0tLdi/fz8mTJgQi+Qo0tSh26GJiIiIehzVu+OXLl2KzZs3429/+xuysrI8Y0BTU1ORlpYGQRCwePFiPP744ygpKcHgwYOxZs0apKamYu7cuWonRzFrm26HJiIiIupxVF+iyT0L3t9dd92Fe+65B4Br/OeqVavwwgsvwGq1YuzYsVizZg1GjBihZlLCwiWaiIiIqKfRc4mmmK8T2lUwCCUiIqKepluvE0pERERE5I9BKBERERFpjkEoEREREWmOQSgRERERaY5BKBERERFpjkEoEREREWmOQSgRERERaY5BKBERERFpjkEoEREREWmOQSgRERERaY5BKBERERFpjkEoEREREWmOQSgRERERaY5BaCdB7wQQERER9SAMQjsNTNU7BUREREQ9B4PQThXNeqeAiIiIqOdgENrJ0aF3CoiIiIh6DgahnRiDEhEREWmHQSgRERERaY5BKBERERFpjkFopyS9E0BERETUgzAI7dSidwKIiIiIehAGoURERESkOQahRERERKQ5BqFEREREpDkGoURERESkOQahRERERKQ5BqFEREREpDkGoURERESkuZgEoXv37sUNN9yA4cOHIysrC5s2bfL5XBRFPPLIIxg2bBgKCgowa9YsHDlyJBZJISIiIqI4FJMgtKmpCSNGjMCqVauQnJwc8PnatWuxfv16PProo3jnnXdgsVhwzTXXwGazxSI5imQm6HZoIiIioh4nJkHoFVdcgT/+8Y+YPXs2DAbfQ4iiiKeeegq//e1vMXv2bIwYMQJPPfUU7HY7tm7dGovkKCJC0O3YRERERD2N5mNCy8vLUV1djcsuu8yzLTk5GZMmTcKBAwe0To5HlpnDY4mIiIi0YtL6gNXV1QAAi8Xis91isaCqqkr278rKymKarnv7GXDHl2Y42SJKREREPYIY0/iqpKQk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VVVYsWIF9u3bh6effhr79u3DbbfdFvBdf/jDH3D06FHP/5YuXRrz81NDtHnkdtNNN/mc/5///Gefz3/+85/j0KFD2LJlC7Zu3YpDhw7h9ttvj+m5qSHa/CksLPTJl6NHj+Lxxx+HIAi4+uqrfb4rVB7Go2D5I4oibrrpJhw7dgybNm3C+++/j6KiIsyePRtNTU2e/e655x7s2LEDzz77LP71r3/BZrNh/vz5cDqdAACn04n58+fDbrfjX//6F5599lls374d9913n6bnGolo86en10FKyxDQM+sgJfnT3eugPXv24LbbbsOuXbuwfft2mEwmzJkzB6dPn/bss3btWqxfvx6PPvoo3nnnHVgsFlxzzTWw2WyefUKVjzNnzuCaa65BXl4e3nnnHaxatQrr1q3DE088oen56oHrhKqgb9++eOyxx3DTTTd5tl100UX48Y9/jHvvvdez7corr8R5552H1atXS37P22+/jfnz56O8vBwZGRkAXK0QixYtwq9+9avYnkSMRZpHs2bNwogRI2Tz7OjRo5gwYQJ27tyJiRMnAgD279+PmTNn4uDBgygpKYnhWalHrTI0Z84cCIKAf/zjH55tofKwK/DPn2+++Qbjxo3DBx98gJEjRwIAOjo6MGTIEPzxj3/EzTffjMbGRgwePBjr16/H9ddfDwCoqKjAyJEjsXXrVkybNg3//ve/cf311+OLL75AYWEhAGDz5s349a9/jbKyMs91GO8iyR8pPakOUppHPbUOirQMddc6CHD1ThUXF2PTpk2YOXMmRFHEsGHDsHDhQs+DWXNzM0pKSvDQQw9hwYIFisrHs88+iwceeABff/2152Fg9erVeO655/DVV19BEATdzjnW2BIaIxMnTsTOnTtRUVEBADhw4AAOHz6MadOmyf6NzWaD2WxGSkqKz/Z169ZhwIABmDJlCtasWdMlugqVUJpHr732GgYOHIiJEydi+fLlPk+YpaWlSEtLw4QJE3y+NzU1FQcOHNDmRGIk3DL0/fff47333sOtt94a8FmwPOyKWltbAQBJSUmebQaDAWazGfv37wcAfPbZZ3A4HLjssss8+xQWFmLo0KGeslFaWoqhQ4d6AlAAmDZtGlpbW/HZZ59pcSoxoSR/pPSkOiicPOqJdVAkZai710F2ux0dHR3IysoC4BqOUF1d7VPHJCcnY9KkST51TKjy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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11f07ca90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制散点图\n",
    "x = climate_sub_china['year']\n",
    "y = climate_sub_china['AverageTemperature']\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(10,5))\n",
    "ax.scatter(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 02 特征增强"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>times_pregment</th>\n",
       "      <th>plasma_glucose_concentration</th>\n",
       "      <th>diastolic_blood_pressure</th>\n",
       "      <th>triceps_thickness</th>\n",
       "      <th>serum_insulin</th>\n",
       "      <th>bmi</th>\n",
       "      <th>pedigree_function</th>\n",
       "      <th>age</th>\n",
       "      <th>onset_disbetes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>148</td>\n",
       "      <td>72</td>\n",
       "      <td>35</td>\n",
       "      <td>0</td>\n",
       "      <td>33.6</td>\n",
       "      <td>0.627</td>\n",
       "      <td>50</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>85</td>\n",
       "      <td>66</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>26.6</td>\n",
       "      <td>0.351</td>\n",
       "      <td>31</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>183</td>\n",
       "      <td>64</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>23.3</td>\n",
       "      <td>0.672</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>66</td>\n",
       "      <td>23</td>\n",
       "      <td>94</td>\n",
       "      <td>28.1</td>\n",
       "      <td>0.167</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>137</td>\n",
       "      <td>40</td>\n",
       "      <td>35</td>\n",
       "      <td>168</td>\n",
       "      <td>43.1</td>\n",
       "      <td>2.288</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   times_pregment  plasma_glucose_concentration  diastolic_blood_pressure  \\\n",
       "0               6                           148                        72   \n",
       "1               1                            85                        66   \n",
       "2               8                           183                        64   \n",
       "3               1                            89                        66   \n",
       "4               0                           137                        40   \n",
       "\n",
       "   triceps_thickness  serum_insulin   bmi  pedigree_function  age  \\\n",
       "0                 35              0  33.6              0.627   50   \n",
       "1                 29              0  26.6              0.351   31   \n",
       "2                  0              0  23.3              0.672   32   \n",
       "3                 23             94  28.1              0.167   21   \n",
       "4                 35            168  43.1              2.288   33   \n",
       "\n",
       "   onset_disbetes  \n",
       "0               1  \n",
       "1               0  \n",
       "2               1  \n",
       "3               0  \n",
       "4               1  "
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 引入第 3 个数据集(皮马印第安人糖尿病预测数据集)\n",
    "pima_columns = ['times_pregment','plasma_glucose_concentration','diastolic_blood_pressure','triceps_thickness',\n",
    "                'serum_insulin','bmi','pedigree_function','age','onset_disbetes']\n",
    "\n",
    "pima = pd.read_csv('./data/pima.data', names=pima_columns)\n",
    "pima.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 768 entries, 0 to 767\n",
      "Data columns (total 9 columns):\n",
      "times_pregment                  768 non-null int64\n",
      "plasma_glucose_concentration    768 non-null int64\n",
      "diastolic_blood_pressure        768 non-null int64\n",
      "triceps_thickness               768 non-null int64\n",
      "serum_insulin                   768 non-null int64\n",
      "bmi                             768 non-null float64\n",
      "pedigree_function               768 non-null float64\n",
      "age                             768 non-null int64\n",
      "onset_disbetes                  768 non-null int64\n",
      "dtypes: float64(2), int64(7)\n",
      "memory usage: 54.1 KB\n"
     ]
    }
   ],
   "source": [
    "pima.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>times_pregment</th>\n",
       "      <th>plasma_glucose_concentration</th>\n",
       "      <th>diastolic_blood_pressure</th>\n",
       "      <th>triceps_thickness</th>\n",
       "      <th>serum_insulin</th>\n",
       "      <th>bmi</th>\n",
       "      <th>pedigree_function</th>\n",
       "      <th>age</th>\n",
       "      <th>onset_disbetes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>3.845052</td>\n",
       "      <td>120.894531</td>\n",
       "      <td>69.105469</td>\n",
       "      <td>20.536458</td>\n",
       "      <td>79.799479</td>\n",
       "      <td>31.992578</td>\n",
       "      <td>0.471876</td>\n",
       "      <td>33.240885</td>\n",
       "      <td>0.348958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>3.369578</td>\n",
       "      <td>31.972618</td>\n",
       "      <td>19.355807</td>\n",
       "      <td>15.952218</td>\n",
       "      <td>115.244002</td>\n",
       "      <td>7.884160</td>\n",
       "      <td>0.331329</td>\n",
       "      <td>11.760232</td>\n",
       "      <td>0.476951</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.078000</td>\n",
       "      <td>21.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>99.000000</td>\n",
       "      <td>62.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>27.300000</td>\n",
       "      <td>0.243750</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>117.000000</td>\n",
       "      <td>72.000000</td>\n",
       "      <td>23.000000</td>\n",
       "      <td>30.500000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>0.372500</td>\n",
       "      <td>29.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>6.000000</td>\n",
       "      <td>140.250000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>127.250000</td>\n",
       "      <td>36.600000</td>\n",
       "      <td>0.626250</td>\n",
       "      <td>41.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>17.000000</td>\n",
       "      <td>199.000000</td>\n",
       "      <td>122.000000</td>\n",
       "      <td>99.000000</td>\n",
       "      <td>846.000000</td>\n",
       "      <td>67.100000</td>\n",
       "      <td>2.420000</td>\n",
       "      <td>81.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       times_pregment  plasma_glucose_concentration  diastolic_blood_pressure  \\\n",
       "count      768.000000                    768.000000                768.000000   \n",
       "mean         3.845052                    120.894531                 69.105469   \n",
       "std          3.369578                     31.972618                 19.355807   \n",
       "min          0.000000                      0.000000                  0.000000   \n",
       "25%          1.000000                     99.000000                 62.000000   \n",
       "50%          3.000000                    117.000000                 72.000000   \n",
       "75%          6.000000                    140.250000                 80.000000   \n",
       "max         17.000000                    199.000000                122.000000   \n",
       "\n",
       "       triceps_thickness  serum_insulin         bmi  pedigree_function  \\\n",
       "count         768.000000     768.000000  768.000000         768.000000   \n",
       "mean           20.536458      79.799479   31.992578           0.471876   \n",
       "std            15.952218     115.244002    7.884160           0.331329   \n",
       "min             0.000000       0.000000    0.000000           0.078000   \n",
       "25%             0.000000       0.000000   27.300000           0.243750   \n",
       "50%            23.000000      30.500000   32.000000           0.372500   \n",
       "75%            32.000000     127.250000   36.600000           0.626250   \n",
       "max            99.000000     846.000000   67.100000           2.420000   \n",
       "\n",
       "              age  onset_disbetes  \n",
       "count  768.000000      768.000000  \n",
       "mean    33.240885        0.348958  \n",
       "std     11.760232        0.476951  \n",
       "min     21.000000        0.000000  \n",
       "25%     24.000000        0.000000  \n",
       "50%     29.000000        0.000000  \n",
       "75%     41.000000        1.000000  \n",
       "max     81.000000        1.000000  "
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pima.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "times_pregment                    0\n",
       "plasma_glucose_concentration      5\n",
       "diastolic_blood_pressure         35\n",
       "triceps_thickness               227\n",
       "serum_insulin                   374\n",
       "bmi                              11\n",
       "pedigree_function                 0\n",
       "age                               0\n",
       "onset_disbetes                    0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 处理被错误填充的缺失值0，还原为 空(单独处理)\n",
    "pima['serum_insulin'] = pima['serum_insulin'].map(lambda x:x if x !=0 else None)\n",
    "# 检查变量缺失情况\n",
    "pima['serum_insulin'].isnull().sum()\n",
    "\n",
    "\n",
    "# 批量操作 还原缺失值\n",
    "columns = ['serum_insulin','bmi','plasma_glucose_concentration','diastolic_blood_pressure','triceps_thickness']\n",
    "\n",
    "for col in columns:\n",
    "    pima[col].replace([0], [None], inplace=True)\n",
    "\n",
    "# 检查变量缺失情况\n",
    "pima.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "保留了原先 49% 的行\n"
     ]
    }
   ],
   "source": [
    "# 删除含有缺失值的行\n",
    "pima_dropped = pima.dropna()\n",
    "num_rows_lost = round(100*((pima.shape[0]-pima_dropped.shape[0])/pima.shape[0]))\n",
    "print(\"保留了原先 {}% 的行\".format(num_rows_lost))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0,0.5,'% change')"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11e8e4470>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 查看下 删除行 之后，各个特征均值的差异\n",
    "ax = (100*(pima_dropped.mean()-pima.mean())/pima.mean()).plot(kind='bar', title='各个特征均值的改变%')\n",
    "ax.set_ylabel('% change')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.731770833333 {'classify__n_neighbors': 6}\n"
     ]
    }
   ],
   "source": [
    "# 使用sklearn的 Pipeline以及 Imputer来实现缺失值填充\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.preprocessing import Imputer\n",
    "\n",
    "# 调参候选\n",
    "knn_params = {'classify__n_neighbors':[1,2,3,4,5,6]}\n",
    "\n",
    "# 实例化KNN模型\n",
    "knn = KNeighborsClassifier()\n",
    "\n",
    "# 管道设计\n",
    "mean_impute = Pipeline([('imputer', Imputer(strategy='mean')),\n",
    "                        ('classify',knn)\n",
    "                       ])\n",
    "\n",
    "x = pima.drop('onset_disbetes', axis=1) # 丢弃y\n",
    "y = pima['onset_disbetes']\n",
    "\n",
    "# 网格搜索\n",
    "grid = GridSearchCV(mean_impute, knn_params)\n",
    "grid.fit(x, y)\n",
    "\n",
    "# 打印模型效果\n",
    "print(grid.best_score_, grid.best_params_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 标准化与归一化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>times_pregment</th>\n",
       "      <th>plasma_glucose_concentration</th>\n",
       "      <th>diastolic_blood_pressure</th>\n",
       "      <th>triceps_thickness</th>\n",
       "      <th>serum_insulin</th>\n",
       "      <th>bmi</th>\n",
       "      <th>pedigree_function</th>\n",
       "      <th>age</th>\n",
       "      <th>onset_disbetes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6.0</td>\n",
       "      <td>148.0</td>\n",
       "      <td>72.0</td>\n",
       "      <td>35.00000</td>\n",
       "      <td>155.548223</td>\n",
       "      <td>33.6</td>\n",
       "      <td>0.627</td>\n",
       "      <td>50.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>85.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>29.00000</td>\n",
       "      <td>155.548223</td>\n",
       "      <td>26.6</td>\n",
       "      <td>0.351</td>\n",
       "      <td>31.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8.0</td>\n",
       "      <td>183.0</td>\n",
       "      <td>64.0</td>\n",
       "      <td>29.15342</td>\n",
       "      <td>155.548223</td>\n",
       "      <td>23.3</td>\n",
       "      <td>0.672</td>\n",
       "      <td>32.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>89.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>23.00000</td>\n",
       "      <td>94.000000</td>\n",
       "      <td>28.1</td>\n",
       "      <td>0.167</td>\n",
       "      <td>21.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.0</td>\n",
       "      <td>137.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>35.00000</td>\n",
       "      <td>168.000000</td>\n",
       "      <td>43.1</td>\n",
       "      <td>2.288</td>\n",
       "      <td>33.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   times_pregment  plasma_glucose_concentration  diastolic_blood_pressure  \\\n",
       "0             6.0                         148.0                      72.0   \n",
       "1             1.0                          85.0                      66.0   \n",
       "2             8.0                         183.0                      64.0   \n",
       "3             1.0                          89.0                      66.0   \n",
       "4             0.0                         137.0                      40.0   \n",
       "\n",
       "   triceps_thickness  serum_insulin   bmi  pedigree_function   age  \\\n",
       "0           35.00000     155.548223  33.6              0.627  50.0   \n",
       "1           29.00000     155.548223  26.6              0.351  31.0   \n",
       "2           29.15342     155.548223  23.3              0.672  32.0   \n",
       "3           23.00000      94.000000  28.1              0.167  21.0   \n",
       "4           35.00000     168.000000  43.1              2.288  33.0   \n",
       "\n",
       "   onset_disbetes  \n",
       "0             1.0  \n",
       "1             0.0  \n",
       "2             1.0  \n",
       "3             0.0  \n",
       "4             1.0  "
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "impute = Imputer(strategy='mean')\n",
    "pima_imputed_mean = pd.DataFrame(impute.fit_transform(pima),columns=pima_columns)\n",
    "pima_imputed_mean.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x1252a0c88>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x124a4c320>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x124a731d0>],\n",
       "       [<matplotlib.axes._subplots.AxesSubplot object at 0x124aa8a58>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x124ae7128>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x124ae7160>],\n",
       "       [<matplotlib.axes._subplots.AxesSubplot object at 0x124aee198>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x124b7ddd8>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x124bbf438>]], dtype=object)"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11e94ada0>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pima_imputed_mean.hist(figsize=(15,15))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x124df8f60>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x124e81d30>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x124ec2278>],\n",
       "       [<matplotlib.axes._subplots.AxesSubplot object at 0x124ef7780>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x124ec2ef0>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x124eca780>],\n",
       "       [<matplotlib.axes._subplots.AxesSubplot object at 0x124f9c2b0>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x124fd0828>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x125004e10>]], dtype=object)"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x124c895c0>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# z分数标准化（单一特征）\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "# 实例化方法\n",
    "scaler = StandardScaler()\n",
    "glucose_z_score_standarScaler = scaler.fit_transform(pima[['plasma_glucose_concentration']].fillna(-9))\n",
    "# 可以看看转换之后的均值和标准差是否为0和1\n",
    "glucose_z_score_standarScaler.mean(), glucose_z_score_standarScaler.std()\n",
    "\n",
    "\n",
    "# z分数标准化（全部特征）\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "# 实例化方法\n",
    "scaler = StandardScaler()\n",
    "pima_imputed_mean_scaled = pd.DataFrame(scaler.fit_transform(pima_imputed_mean), columns=pima_columns)\n",
    "# 看下标准化之后的分布\n",
    "pima_imputed_mean_scaled.hist(figsize=(15,15), sharex=True)\n",
    "\n",
    "\n",
    "# 在Pipeline中使用\n",
    "model = Pipeline([\n",
    "    ('imputer', Imputer()),\n",
    "    ('standardize', StandarScaler())\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [],
   "source": [
    "# min-max标准化\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "# 实例化方法\n",
    "min_max = MinMaxScaler()\n",
    "# 使用min-max标准化\n",
    "pima_min_maxed = pd.DataFrame(min_max.fit_transform(pima.fillna(-9)), columns=pima_columns)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 行归一化\n",
    "from sklearn.preprocessing import Normalizer\n",
    "# 实例化方法\n",
    "normalize = Normalizer()\n",
    "# 使用行归一化\n",
    "pima_normalized = pd.DataFrame(normalize.fit_transform(pima.fillna(-9)), columns=pima_columns)\n",
    "# 查看矩阵的平均范数\n",
    "np.sqrt((pima_normalized**2).sum(axis=1)).mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 03 特征构建"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>boolean</th>\n",
       "      <th>city</th>\n",
       "      <th>ordinal_column</th>\n",
       "      <th>quantitative_column</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>y</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>n</td>\n",
       "      <td>None</td>\n",
       "      <td>like</td>\n",
       "      <td>11.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>None</td>\n",
       "      <td>london</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>-0.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>n</td>\n",
       "      <td>seattle</td>\n",
       "      <td>like</td>\n",
       "      <td>10.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>n</td>\n",
       "      <td>san fancisco</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>y</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>dislike</td>\n",
       "      <td>20.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  boolean          city ordinal_column  quantitative_column\n",
       "0       y         tokyo  somewhat like                  1.0\n",
       "1       n          None           like                 11.0\n",
       "2    None        london  somewhat like                 -0.5\n",
       "3       n       seattle           like                 10.0\n",
       "4       n  san fancisco  somewhat like                  NaN\n",
       "5       y         tokyo        dislike                 20.0"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 本次案例使用的数据集\n",
    "import pandas as pd\n",
    "\n",
    "X = pd.DataFrame({'city':['tokyo',None,'london','seattle','san fancisco','tokyo'],\n",
    "                  'boolean':['y','n',None,'n','n','y'],\n",
    "                  'ordinal_column':['somewhat like','like','somewhat like','like','somewhat like','dislike'],\n",
    "                  'quantitative_column':[1,11,-.5,10,None,20]})\n",
    "X"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 分类变量处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>boolean</th>\n",
       "      <th>city</th>\n",
       "      <th>ordinal_column</th>\n",
       "      <th>quantitative_column</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>y</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>n</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>like</td>\n",
       "      <td>11.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>n</td>\n",
       "      <td>london</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>-0.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>n</td>\n",
       "      <td>seattle</td>\n",
       "      <td>like</td>\n",
       "      <td>10.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>n</td>\n",
       "      <td>san fancisco</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>y</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>dislike</td>\n",
       "      <td>20.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  boolean          city ordinal_column  quantitative_column\n",
       "0       y         tokyo  somewhat like                  1.0\n",
       "1       n         tokyo           like                 11.0\n",
       "2       n        london  somewhat like                 -0.5\n",
       "3       n       seattle           like                 10.0\n",
       "4       n  san fancisco  somewhat like                  NaN\n",
       "5       y         tokyo        dislike                 20.0"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 填充分类变量（基于TransformerMixin的自定义填充器，用众数填充）\n",
    "from sklearn.base import TransformerMixin\n",
    "\n",
    "class CustomCategoryzImputer(TransformerMixin):\n",
    "    def __init__(self, cols=None):\n",
    "        self.cols = cols\n",
    "        \n",
    "    def transform(self, df):\n",
    "        X = df.copy()\n",
    "        for col in self.cols:\n",
    "            X[col].fillna(X[col].value_counts().index[0], inplace=True)\n",
    "        return X\n",
    "    \n",
    "    def fit(self, *_):\n",
    "        return self   \n",
    "    \n",
    "    \n",
    "# 调用自定义的填充器\n",
    "cci = CustomCategoryzImputer(cols=['city','boolean'])\n",
    "cci.fit_transform(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>boolean</th>\n",
       "      <th>city</th>\n",
       "      <th>ordinal_column</th>\n",
       "      <th>quantitative_column</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>y</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>n</td>\n",
       "      <td>None</td>\n",
       "      <td>like</td>\n",
       "      <td>11.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>None</td>\n",
       "      <td>london</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>-0.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>n</td>\n",
       "      <td>seattle</td>\n",
       "      <td>like</td>\n",
       "      <td>10.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>n</td>\n",
       "      <td>san fancisco</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>8.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>y</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>dislike</td>\n",
       "      <td>20.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  boolean          city ordinal_column  quantitative_column\n",
       "0       y         tokyo  somewhat like                  1.0\n",
       "1       n          None           like                 11.0\n",
       "2    None        london  somewhat like                 -0.5\n",
       "3       n       seattle           like                 10.0\n",
       "4       n  san fancisco  somewhat like                  8.3\n",
       "5       y         tokyo        dislike                 20.0"
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 填充分类变量（基于Imputer的自定义填充器，用众数填充）\n",
    "from sklearn.preprocessing import Imputer\n",
    "class CustomQuantitativeImputer(TransformerMixin):\n",
    "    def __init__(self, cols=None, strategy='mean'):\n",
    "        self.cols = cols\n",
    "        self.strategy = strategy\n",
    "        \n",
    "    def transform(self, df):\n",
    "        X = df.copy()\n",
    "        impute = Imputer(strategy=self.strategy)\n",
    "        for col in self.cols:\n",
    "            X[col] = impute.fit_transform(X[[col]])\n",
    "        return X\n",
    "    \n",
    "    def fit(self, *_):\n",
    "        return self\n",
    "    \n",
    "    \n",
    "# 调用自定义的填充器\n",
    "cqi = CustomQuantitativeImputer(cols = ['quantitative_column'], strategy='mean')\n",
    "cqi.fit_transform(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>boolean</th>\n",
       "      <th>city</th>\n",
       "      <th>ordinal_column</th>\n",
       "      <th>quantitative_column</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>y</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>n</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>like</td>\n",
       "      <td>11.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>n</td>\n",
       "      <td>london</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>-0.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>n</td>\n",
       "      <td>seattle</td>\n",
       "      <td>like</td>\n",
       "      <td>10.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>n</td>\n",
       "      <td>san fancisco</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>8.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>y</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>dislike</td>\n",
       "      <td>20.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  boolean          city ordinal_column  quantitative_column\n",
       "0       y         tokyo  somewhat like                  1.0\n",
       "1       n         tokyo           like                 11.0\n",
       "2       n        london  somewhat like                 -0.5\n",
       "3       n       seattle           like                 10.0\n",
       "4       n  san fancisco  somewhat like                  8.3\n",
       "5       y         tokyo        dislike                 20.0"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 全部填充\n",
    "from sklearn.pipeline import Pipeline\n",
    "\n",
    "imputer = Pipeline([('quant',cqi),\n",
    "                    ('category',cci)\n",
    "])\n",
    "\n",
    "imputer.fit_transform(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ordinal_column</th>\n",
       "      <th>quantitative_column</th>\n",
       "      <th>boolean_n</th>\n",
       "      <th>boolean_y</th>\n",
       "      <th>city_london</th>\n",
       "      <th>city_san fancisco</th>\n",
       "      <th>city_seattle</th>\n",
       "      <th>city_tokyo</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>somewhat like</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>like</td>\n",
       "      <td>11.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>somewhat like</td>\n",
       "      <td>-0.5</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>like</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>somewhat like</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>dislike</td>\n",
       "      <td>20.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  ordinal_column  quantitative_column  boolean_n  boolean_y  city_london  \\\n",
       "0  somewhat like                  1.0          0          1            0   \n",
       "1           like                 11.0          1          0            0   \n",
       "2  somewhat like                 -0.5          0          0            1   \n",
       "3           like                 10.0          1          0            0   \n",
       "4  somewhat like                  NaN          1          0            0   \n",
       "5        dislike                 20.0          0          1            0   \n",
       "\n",
       "   city_san fancisco  city_seattle  city_tokyo  \n",
       "0                  0             0           1  \n",
       "1                  0             0           0  \n",
       "2                  0             0           0  \n",
       "3                  0             1           0  \n",
       "4                  1             0           0  \n",
       "5                  0             0           1  "
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 类别变量的编码（独热编码）\n",
    "class CustomDummifier(TransformerMixin):\n",
    "    def __init__(self, cols=None):\n",
    "        self.cols = cols\n",
    "        \n",
    "    def transform(self, X):\n",
    "        return pd.get_dummies(X, columns=self.cols)\n",
    "    \n",
    "    def fit(self, *_):\n",
    "        return self\n",
    "    \n",
    "\n",
    "# 调用自定义的填充器\n",
    "cd = CustomDummifier(cols=['boolean','city'])\n",
    "cd.fit_transform(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>boolean</th>\n",
       "      <th>city</th>\n",
       "      <th>ordinal_column</th>\n",
       "      <th>quantitative_column</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>y</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>n</td>\n",
       "      <td>None</td>\n",
       "      <td>2</td>\n",
       "      <td>11.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>None</td>\n",
       "      <td>london</td>\n",
       "      <td>1</td>\n",
       "      <td>-0.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>n</td>\n",
       "      <td>seattle</td>\n",
       "      <td>2</td>\n",
       "      <td>10.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>n</td>\n",
       "      <td>san fancisco</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>y</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>0</td>\n",
       "      <td>20.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  boolean          city  ordinal_column  quantitative_column\n",
       "0       y         tokyo               1                  1.0\n",
       "1       n          None               2                 11.0\n",
       "2    None        london               1                 -0.5\n",
       "3       n       seattle               2                 10.0\n",
       "4       n  san fancisco               1                  NaN\n",
       "5       y         tokyo               0                 20.0"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 类别变量的编码（标签编码）\n",
    "class CustomEncoder(TransformerMixin):\n",
    "    def __init__(self, col, ordering=None):\n",
    "        self.ordering = ordering\n",
    "        self.col = col\n",
    "        \n",
    "    def transform(self, df):\n",
    "        X = df.copy()\n",
    "        X[self.col] = X[self.col].map(lambda x: self.ordering.index(x))\n",
    "        return X\n",
    "    \n",
    "    def fit(self, *_):\n",
    "        return self\n",
    "    \n",
    "\n",
    "# 调用自定义的填充器\n",
    "ce = CustomEncoder(col='ordinal_column', ordering=['dislike','somewhat like','like'])\n",
    "ce.fit_transform(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>boolean</th>\n",
       "      <th>city</th>\n",
       "      <th>ordinal_column</th>\n",
       "      <th>quantitative_column</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>y</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>n</td>\n",
       "      <td>None</td>\n",
       "      <td>like</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>None</td>\n",
       "      <td>london</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>n</td>\n",
       "      <td>seattle</td>\n",
       "      <td>like</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>n</td>\n",
       "      <td>san fancisco</td>\n",
       "      <td>somewhat like</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>y</td>\n",
       "      <td>tokyo</td>\n",
       "      <td>dislike</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  boolean          city ordinal_column  quantitative_column\n",
       "0       y         tokyo  somewhat like                  0.0\n",
       "1       n          None           like                  1.0\n",
       "2    None        london  somewhat like                  0.0\n",
       "3       n       seattle           like                  1.0\n",
       "4       n  san fancisco  somewhat like                  NaN\n",
       "5       y         tokyo        dislike                  2.0"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 数值变量处理——cut函数\n",
    "class CustomCutter(TransformerMixin):\n",
    "    def __init__(self, col, bins, labels=False):\n",
    "        self.labels = labels\n",
    "        self.bins = bins\n",
    "        self.col = col\n",
    "        \n",
    "    def transform(self, df):\n",
    "        X = df.copy()\n",
    "        X[self.col] = pd.cut(X[self.col], bins=self.bins, labels=self.labels)\n",
    "        return X\n",
    "    \n",
    "    def fit(self, *_):\n",
    "        return self\n",
    "    \n",
    "\n",
    "# 调用自定义的填充器\n",
    "cc = CustomCutter(col='quantitative_column', bins=3)\n",
    "cc.fit_transform(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ordinal_column</th>\n",
       "      <th>quantitative_column</th>\n",
       "      <th>boolean_n</th>\n",
       "      <th>boolean_y</th>\n",
       "      <th>city_london</th>\n",
       "      <th>city_san fancisco</th>\n",
       "      <th>city_seattle</th>\n",
       "      <th>city_tokyo</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   ordinal_column  quantitative_column  boolean_n  boolean_y  city_london  \\\n",
       "0               1                    0          0          1            0   \n",
       "1               2                    1          1          0            0   \n",
       "2               1                    0          1          0            1   \n",
       "3               2                    1          1          0            0   \n",
       "4               1                    1          1          0            0   \n",
       "5               0                    2          0          1            0   \n",
       "\n",
       "   city_san fancisco  city_seattle  city_tokyo  \n",
       "0                  0             0           1  \n",
       "1                  0             0           1  \n",
       "2                  0             0           0  \n",
       "3                  0             1           0  \n",
       "4                  1             0           0  \n",
       "5                  0             0           1  "
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.pipeline import Pipeline\n",
    "\n",
    "# 流水线封装\n",
    "pipe = Pipeline([('imputer',imputer),\n",
    "                 ('dummify',cd),\n",
    "                 ('encode',ce),\n",
    "                 ('cut',cc)\n",
    "])\n",
    "\n",
    "# 训练流水线\n",
    "pipe.fit(X)\n",
    "\n",
    "# 转换流水线\n",
    "pipe.transform(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>x</th>\n",
       "      <th>y</th>\n",
       "      <th>z</th>\n",
       "      <th>activity</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1502</td>\n",
       "      <td>2215</td>\n",
       "      <td>2153</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1667</td>\n",
       "      <td>2072</td>\n",
       "      <td>2047</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2.0</td>\n",
       "      <td>1611</td>\n",
       "      <td>1957</td>\n",
       "      <td>1906</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3.0</td>\n",
       "      <td>1601</td>\n",
       "      <td>1939</td>\n",
       "      <td>1831</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4.0</td>\n",
       "      <td>1643</td>\n",
       "      <td>1965</td>\n",
       "      <td>1879</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   index     x     y     z  activity\n",
       "0    0.0  1502  2215  2153         1\n",
       "1    1.0  1667  2072  2047         1\n",
       "2    2.0  1611  1957  1906         1\n",
       "3    3.0  1601  1939  1831         1\n",
       "4    4.0  1643  1965  1879         1"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 人体胸部加速度数据集,标签activity的数值为1-7\n",
    "'''\n",
    "1-在电脑前工作\n",
    "2-站立、走路和上下楼梯\n",
    "3-站立\n",
    "4-走路\n",
    "5-上下楼梯\n",
    "6-与人边走边聊\n",
    "7-站立着说话\n",
    "\n",
    "'''\n",
    "df = pd.read_csv('./data/activity_recognizer/1.csv', header=None)\n",
    "df.columns = ['index','x','y','z','activity']\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>x0</th>\n",
       "      <th>x1</th>\n",
       "      <th>x2</th>\n",
       "      <th>x0^2</th>\n",
       "      <th>x0 x1</th>\n",
       "      <th>x0 x2</th>\n",
       "      <th>x1^2</th>\n",
       "      <th>x1 x2</th>\n",
       "      <th>x2^2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1502.0</td>\n",
       "      <td>2215.0</td>\n",
       "      <td>2153.0</td>\n",
       "      <td>2256004.0</td>\n",
       "      <td>3326930.0</td>\n",
       "      <td>3233806.0</td>\n",
       "      <td>4906225.0</td>\n",
       "      <td>4768895.0</td>\n",
       "      <td>4635409.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1667.0</td>\n",
       "      <td>2072.0</td>\n",
       "      <td>2047.0</td>\n",
       "      <td>2778889.0</td>\n",
       "      <td>3454024.0</td>\n",
       "      <td>3412349.0</td>\n",
       "      <td>4293184.0</td>\n",
       "      <td>4241384.0</td>\n",
       "      <td>4190209.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1611.0</td>\n",
       "      <td>1957.0</td>\n",
       "      <td>1906.0</td>\n",
       "      <td>2595321.0</td>\n",
       "      <td>3152727.0</td>\n",
       "      <td>3070566.0</td>\n",
       "      <td>3829849.0</td>\n",
       "      <td>3730042.0</td>\n",
       "      <td>3632836.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1601.0</td>\n",
       "      <td>1939.0</td>\n",
       "      <td>1831.0</td>\n",
       "      <td>2563201.0</td>\n",
       "      <td>3104339.0</td>\n",
       "      <td>2931431.0</td>\n",
       "      <td>3759721.0</td>\n",
       "      <td>3550309.0</td>\n",
       "      <td>3352561.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1643.0</td>\n",
       "      <td>1965.0</td>\n",
       "      <td>1879.0</td>\n",
       "      <td>2699449.0</td>\n",
       "      <td>3228495.0</td>\n",
       "      <td>3087197.0</td>\n",
       "      <td>3861225.0</td>\n",
       "      <td>3692235.0</td>\n",
       "      <td>3530641.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       x0      x1      x2       x0^2      x0 x1      x0 x2       x1^2  \\\n",
       "0  1502.0  2215.0  2153.0  2256004.0  3326930.0  3233806.0  4906225.0   \n",
       "1  1667.0  2072.0  2047.0  2778889.0  3454024.0  3412349.0  4293184.0   \n",
       "2  1611.0  1957.0  1906.0  2595321.0  3152727.0  3070566.0  3829849.0   \n",
       "3  1601.0  1939.0  1831.0  2563201.0  3104339.0  2931431.0  3759721.0   \n",
       "4  1643.0  1965.0  1879.0  2699449.0  3228495.0  3087197.0  3861225.0   \n",
       "\n",
       "       x1 x2       x2^2  \n",
       "0  4768895.0  4635409.0  \n",
       "1  4241384.0  4190209.0  \n",
       "2  3730042.0  3632836.0  \n",
       "3  3550309.0  3352561.0  \n",
       "4  3692235.0  3530641.0  "
      ]
     },
     "execution_count": 120,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 扩展数值特征\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "\n",
    "x = df[['x','y','z']]\n",
    "y = df['activity']\n",
    "\n",
    "poly = PolynomialFeatures(degree=2, include_bias=False, interaction_only=False)\n",
    "\n",
    "x_poly = poly.fit_transform(x)\n",
    "pd.DataFrame(x_poly, columns=poly.get_feature_names()).head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x125ab9278>"
      ]
     },
     "execution_count": 121,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x125a9e390>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 查看热力图(颜色越深代表相关性越强)\n",
    "%matplotlib inline\n",
    "import seaborn as sns\n",
    "\n",
    "sns.heatmap(pd.DataFrame(x_poly, columns=poly.get_feature_names()).corr())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/yongsenlin/anaconda3/lib/python3.6/site-packages/sklearn/model_selection/_split.py:605: Warning: The least populated class in y has only 1 members, which is too few. The minimum number of members in any class cannot be less than n_splits=3.\n",
      "  % (min_groups, self.n_splits)), Warning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.721189408065 {'classify__n_neighbors': 5, 'poly_features__degree': 2, 'poly_features__interaction_only': True}\n"
     ]
    }
   ],
   "source": [
    "# 导入相关库\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.pipeline import Pipeline\n",
    "\n",
    "knn = KNeighborsClassifier()\n",
    "\n",
    "# 在流水线中使用\n",
    "pipe_params = {'poly_features__degree':[1,2,3],\n",
    "               'poly_features__interaction_only':[True,False],\n",
    "               'classify__n_neighbors':[3,4,5,6]}\n",
    "\n",
    "# 实例化流水线\n",
    "pipe = Pipeline([('poly_features',poly),\n",
    "                 ('classify',knn)])\n",
    "\n",
    "# 网格搜索\n",
    "grid = GridSearchCV(pipe, pipe_params)\n",
    "grid.fit(x,y)\n",
    "\n",
    "print(grid.best_score_, grid.best_params_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 04 特征选择"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "def get_best_model_and_accuracy(model, params, x, y):\n",
    "    grid = GridSearchCV(model, \n",
    "                        params,\n",
    "                        error_score=0.)\n",
    "    grid.fit(x,y)\n",
    "    \n",
    "    # 经典的性能指标\n",
    "    print(\"Best Accuracy:{}\".format(grid.best_score_))\n",
    "    # 得到最佳准确率的最佳参数\n",
    "    print(\"Best Parameters:{}\".format(grid.best_params_))\n",
    "    # 拟合的平均时间\n",
    "    print(\"Average Time to Fit (s):{}\".format(round(grid.cv_results_['mean_fit_time'].mean(), 3)))\n",
    "    \n",
    "    # 预测的平均时间\n",
    "    print(\"Average Time to Score (s):{}\".format(round(grid.cv_results_['mean_score_time'].mean(), 3)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/yongsenlin/anaconda3/lib/python3.6/site-packages/sklearn/model_selection/_split.py:605: Warning: The least populated class in y has only 1 members, which is too few. The minimum number of members in any class cannot be less than n_splits=3.\n",
      "  % (min_groups, self.n_splits)), Warning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best Accuracy:0.7211894080651812\n",
      "Best Parameters:{'classify__n_neighbors': 5, 'poly_features__degree': 2, 'poly_features__interaction_only': True}\n",
      "Average Time to Fit (s):0.246\n",
      "Average Time to Score (s):0.69\n"
     ]
    }
   ],
   "source": [
    "# 导入相关库\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.pipeline import Pipeline\n",
    "\n",
    "knn = KNeighborsClassifier()\n",
    "\n",
    "# 在流水线中使用\n",
    "pipe_params = {'poly_features__degree':[1,2,3],\n",
    "               'poly_features__interaction_only':[True,False],\n",
    "               'classify__n_neighbors':[3,4,5,6]}\n",
    "\n",
    "# 实例化流水线\n",
    "pipe = Pipeline([('poly_features',poly),\n",
    "                 ('classify',knn)])\n",
    "\n",
    "# 网格搜索\n",
    "get_best_model_and_accuracy(pipe, pipe_params, x, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 信用卡逾期数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LIMIT_BAL</th>\n",
       "      <th>SEX</th>\n",
       "      <th>EDUCATION</th>\n",
       "      <th>MARRIAGE</th>\n",
       "      <th>AGE</th>\n",
       "      <th>PAY_0</th>\n",
       "      <th>PAY_2</th>\n",
       "      <th>PAY_3</th>\n",
       "      <th>PAY_4</th>\n",
       "      <th>PAY_5</th>\n",
       "      <th>...</th>\n",
       "      <th>BILL_AMT4</th>\n",
       "      <th>BILL_AMT5</th>\n",
       "      <th>BILL_AMT6</th>\n",
       "      <th>PAY_AMT1</th>\n",
       "      <th>PAY_AMT2</th>\n",
       "      <th>PAY_AMT3</th>\n",
       "      <th>PAY_AMT4</th>\n",
       "      <th>PAY_AMT5</th>\n",
       "      <th>PAY_AMT6</th>\n",
       "      <th>default payment next month</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>24</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-2</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>689</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>120000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>26</td>\n",
       "      <td>-1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>3272</td>\n",
       "      <td>3455</td>\n",
       "      <td>3261</td>\n",
       "      <td>0</td>\n",
       "      <td>1000</td>\n",
       "      <td>1000</td>\n",
       "      <td>1000</td>\n",
       "      <td>0</td>\n",
       "      <td>2000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>90000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>34</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>14331</td>\n",
       "      <td>14948</td>\n",
       "      <td>15549</td>\n",
       "      <td>1518</td>\n",
       "      <td>1500</td>\n",
       "      <td>1000</td>\n",
       "      <td>1000</td>\n",
       "      <td>1000</td>\n",
       "      <td>5000</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>50000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>37</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>28314</td>\n",
       "      <td>28959</td>\n",
       "      <td>29547</td>\n",
       "      <td>2000</td>\n",
       "      <td>2019</td>\n",
       "      <td>1200</td>\n",
       "      <td>1100</td>\n",
       "      <td>1069</td>\n",
       "      <td>1000</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>50000</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>57</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>20940</td>\n",
       "      <td>19146</td>\n",
       "      <td>19131</td>\n",
       "      <td>2000</td>\n",
       "      <td>36681</td>\n",
       "      <td>10000</td>\n",
       "      <td>9000</td>\n",
       "      <td>689</td>\n",
       "      <td>679</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   LIMIT_BAL  SEX  EDUCATION  MARRIAGE  AGE  PAY_0  PAY_2  PAY_3  PAY_4  \\\n",
       "0      20000    2          2         1   24      2      2     -1     -1   \n",
       "1     120000    2          2         2   26     -1      2      0      0   \n",
       "2      90000    2          2         2   34      0      0      0      0   \n",
       "3      50000    2          2         1   37      0      0      0      0   \n",
       "4      50000    1          2         1   57     -1      0     -1      0   \n",
       "\n",
       "   PAY_5             ...              BILL_AMT4  BILL_AMT5  BILL_AMT6  \\\n",
       "0     -2             ...                      0          0          0   \n",
       "1      0             ...                   3272       3455       3261   \n",
       "2      0             ...                  14331      14948      15549   \n",
       "3      0             ...                  28314      28959      29547   \n",
       "4      0             ...                  20940      19146      19131   \n",
       "\n",
       "   PAY_AMT1  PAY_AMT2  PAY_AMT3  PAY_AMT4  PAY_AMT5  PAY_AMT6  \\\n",
       "0         0       689         0         0         0         0   \n",
       "1         0      1000      1000      1000         0      2000   \n",
       "2      1518      1500      1000      1000      1000      5000   \n",
       "3      2000      2019      1200      1100      1069      1000   \n",
       "4      2000     36681     10000      9000       689       679   \n",
       "\n",
       "   default payment next month  \n",
       "0                           1  \n",
       "1                           1  \n",
       "2                           0  \n",
       "3                           0  \n",
       "4                           0  \n",
       "\n",
       "[5 rows x 24 columns]"
      ]
     },
     "execution_count": 130,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "np.random.seed(123)\n",
    "\n",
    "credit_card_default = pd.read_csv('./data/credit_card_default.csv')\n",
    "credit_card_default.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    0.7788\n",
       "1    0.2212\n",
       "Name: target, dtype: float64"
      ]
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 重命名一下y特征\n",
    "credit_card_default = credit_card_default.rename(columns={'default payment next month':'target'})\n",
    "\n",
    "x = credit_card_default.drop('target', axis=1)\n",
    "y = credit_card_default['target']\n",
    "# 空准确度 77.88%\n",
    "y.value_counts()/len(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入相关模型包\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import RandomForestClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 设置网格搜索的范围\n",
    "# 逻辑回归\n",
    "lr_params = {'C':[1e-1, 1e0, 1e1, 1e2], 'penalty':['l1','l2']}\n",
    "# KNN\n",
    "knn_params = {'n_neighbors':[1,3,5,7]}\n",
    "# 决策树\n",
    "tree_params = {'max_depth':[None,1,3,5,7,9]}\n",
    "# 随机森林\n",
    "rf_params = {'n_estimators':[10,50,100], 'max_depth':[None,1,3,5,7,9]}\n",
    "\n",
    "# 初始化模型\n",
    "lr = LogisticRegression()\n",
    "knn = KNeighborsClassifier()\n",
    "d_tree = DecisionTreeClassifier()\n",
    "rf = RandomForestClassifier()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PAY_0</th>\n",
       "      <th>PAY_2</th>\n",
       "      <th>PAY_3</th>\n",
       "      <th>PAY_4</th>\n",
       "      <th>PAY_5</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PAY_0  PAY_2  PAY_3  PAY_4  PAY_5\n",
       "0      2      2     -1     -1     -2\n",
       "1     -1      2      0      0      0\n",
       "2      0      0      0      0      0\n",
       "3      0      0      0      0      0\n",
       "4     -1      0     -1      0      0"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 皮尔逊相关系数 挑选变量（保留相关系数绝对值大于0.2的）\n",
    "fs1 = credit_card_default.columns[credit_card_default.corr()['target'].abs()>.2].drop('target')\n",
    "x_selected = x[fs1]\n",
    "x_selected.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PAY_0</th>\n",
       "      <th>PAY_2</th>\n",
       "      <th>PAY_3</th>\n",
       "      <th>PAY_4</th>\n",
       "      <th>PAY_5</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PAY_0  PAY_2  PAY_3  PAY_4  PAY_5\n",
       "0      2      2     -1     -1     -2\n",
       "1     -1      2      0      0      0\n",
       "2      0      0      0      0      0\n",
       "3      0      0      0      0      0\n",
       "4     -1      0     -1      0      0"
      ]
     },
     "execution_count": 152,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 皮尔逊相关系数 挑选变量（在Pipeline中实现）\n",
    "from sklearn.base import TransformerMixin, BaseEstimator\n",
    "\n",
    "class CustomCorrelationChooser(TransformerMixin, BaseEstimator):\n",
    "    def __init__(self, response, cols_to_keep =[], threshold=None):\n",
    "        # 保存target\n",
    "        self.response = response\n",
    "        # 保存阈值\n",
    "        self.threshold = threshold\n",
    "        # 初始化一个变量用于保存特征名\n",
    "        self.cols_to_keep = cols_to_keep\n",
    "        \n",
    "    def transform(self, x):\n",
    "        return x[self.cols_to_keep]\n",
    "    \n",
    "    def fit(self, x, *_):\n",
    "        df = pd.concat([x, self.response], axis=1)\n",
    "        self.cols_to_keep = df.columns[df.corr()[df.columns[-1]].abs()>self.threshold]\n",
    "        self.cols_to_keep = [c for c in self.cols_to_keep if c in x.columns]\n",
    "        return self\n",
    "    \n",
    "    \n",
    "# 调用方法\n",
    "ccc = CustomCorrelationChooser(threshold=.2, response=y)\n",
    "ccc.fit(x)\n",
    "# 查看保留的变量\n",
    "ccc.cols_to_keep\n",
    "# 查看转换的变量\n",
    "ccc.transform(x).head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>column</th>\n",
       "      <th>p_value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>PAY_0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>PAY_2</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>PAY_3</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>PAY_4</td>\n",
       "      <td>1.899297e-315</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>PAY_5</td>\n",
       "      <td>1.126608e-279</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>PAY_6</td>\n",
       "      <td>7.296740e-234</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>LIMIT_BAL</td>\n",
       "      <td>1.302244e-157</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>PAY_AMT1</td>\n",
       "      <td>1.146488e-36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>PAY_AMT2</td>\n",
       "      <td>3.166657e-24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>PAY_AMT4</td>\n",
       "      <td>6.830942e-23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>PAY_AMT3</td>\n",
       "      <td>1.841770e-22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>PAY_AMT5</td>\n",
       "      <td>1.241345e-21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>PAY_AMT6</td>\n",
       "      <td>3.033589e-20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>SEX</td>\n",
       "      <td>4.395249e-12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>EDUCATION</td>\n",
       "      <td>1.225038e-06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>MARRIAGE</td>\n",
       "      <td>2.485364e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>BILL_AMT1</td>\n",
       "      <td>6.673295e-04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>BILL_AMT2</td>\n",
       "      <td>1.395736e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>BILL_AMT3</td>\n",
       "      <td>1.476998e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>AGE</td>\n",
       "      <td>1.613685e-02</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       column        p_value\n",
       "5       PAY_0   0.000000e+00\n",
       "6       PAY_2   0.000000e+00\n",
       "7       PAY_3   0.000000e+00\n",
       "8       PAY_4  1.899297e-315\n",
       "9       PAY_5  1.126608e-279\n",
       "10      PAY_6  7.296740e-234\n",
       "0   LIMIT_BAL  1.302244e-157\n",
       "17   PAY_AMT1   1.146488e-36\n",
       "18   PAY_AMT2   3.166657e-24\n",
       "20   PAY_AMT4   6.830942e-23\n",
       "19   PAY_AMT3   1.841770e-22\n",
       "21   PAY_AMT5   1.241345e-21\n",
       "22   PAY_AMT6   3.033589e-20\n",
       "1         SEX   4.395249e-12\n",
       "2   EDUCATION   1.225038e-06\n",
       "3    MARRIAGE   2.485364e-05\n",
       "11  BILL_AMT1   6.673295e-04\n",
       "12  BILL_AMT2   1.395736e-02\n",
       "13  BILL_AMT3   1.476998e-02\n",
       "4         AGE   1.613685e-02"
      ]
     },
     "execution_count": 169,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 假设检验 挑选变量（保留p值小于0.05的）\n",
    "from sklearn.feature_selection import SelectKBest\n",
    "from sklearn.feature_selection import f_classif\n",
    "\n",
    "k_best = SelectKBest(f_classif, k=5)\n",
    "k_best.fit_transform(x,y)\n",
    "\n",
    "# 查看挑选的变量\n",
    "p_values = pd.DataFrame({'column':x.columns,\n",
    "                         'p_value':k_best.pvalues_}).sort_values('p_value')\n",
    "\n",
    "p_values[p_values['p_value']<.05]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 05 特征转换"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 183,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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UsU+1PnL5oSsxhgzLtmV+cjZd0rGGGMCw5KSMcaYwLCkZIwxJjAsKRljjAkMS0rGGGMCw5KSMcaMIxs2bGDVqlVpPeeqq67i5z//eWYCGsCGhJvAStR6NDdXUF1daD2QTP7o6KCwqQlpa0PLy+mtqSEob9558+blOoQhWVIygZQ803JXV5hIpMB6IJn80NHBxBUr+nqkSHs7E7ds4d3a2lElpvPOO48LLriAD33oQ2zcuJHrrruOqVOn8tprrxEOh6mrq+PUU0/lgx/8ILNnz6awsJClS5fyjW98g1AoRHFxMatWrWLt2rVEIhGuuOIKrr76ah599FG6u7v53Oc+x/nnn89NN93EXXfdRSgU4sQTT+Rb3/pWvziuuOIKnnzySeLxOEuWLOGCCy7gy1/+Mjt37qStrY3rr79+VIW/dvvOBJL1QDL5qrCpiVRv3sKmplHt99xzz+WOO+4A4Fe/+hUnn3wypaWl3Hfffdxxxx18+9vfJhqNsmPHDmpra/nJT37CPffcw1lnnUVTUxOf//znaW9v79vfn//8Zx5++GHWrVtHU1MTL7/8Mi+99BJ33XUX999/P01NTUQiEZqS4r7//vv561//ygMPPMD999/PmjVreOmllwD4wAc+wLp165g6deqoXqclJRNI1gPJ5CtpayPVm1fa2ka131NOOYWNGzfS0dHB008/zUsvvcQjjzzCggULWLJkCe+++y5vv/02QN/0Sl/96lfp6Ohg4cKF3H333UyYMKFvf6+99hrHHnssoVCISZMm8f3vf59XXnmF448/nsLCQkSEE088kebm5r7nNDc3M3fuXESEwsJCTjjhBCKRSL9jjpYlJRNImZpp2ZhM0/JyUr15dZRz2RUUFPCJT3yCSy+9lAULFlBdXc3ZZ5/NunXruOuuuzj77LOZPn06ACLOH2933nknCxYsYO3atRx++OHcfvvtffurrq7m+eefJx6PE41GWbRoEYcccgjPPPMMvb29qCpPPPEE1dXVfc+pqqriySefRFXp7e3lj3/8I4ceemi/Y46WfadkAil5pmWwHkgmf/TW1DBxyxbnQdI04b01NaPe92c/+1mOOuooNm7cyIwZM6irq2PBggV0dnZy/vnnEw73/0g/9thjueyyy5g4cSLxeJwbbriBp556CoAjjzySefPmUePG9R//8R+8733vY9GiRcyfP59Q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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x126230e80>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x128b57e48>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# PCA的使用\n",
    "# 导入相关库\n",
    "from sklearn.datasets import load_iris\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "from sklearn.decomposition import PCA\n",
    "\n",
    "# 导入数据集\n",
    "iris = load_iris()\n",
    "iris_x, iris_y = iris.data, iris.target\n",
    "\n",
    "# 实例化方法\n",
    "pca = PCA(n_components=2)\n",
    "# 训练方法\n",
    "pca.fit(iris_x)\n",
    "pca.transform(iris_x)[:5,]\n",
    "\n",
    "# 自定义一个可视化的方法\n",
    "label_dict = {i:k for i,k in enumerate(iris.target_names)}\n",
    "def plot(x,y,title,x_label,y_label):\n",
    "    ax = plt.subplot(111)\n",
    "    for label,marker,color in zip(\n",
    "    range(3),('^','s','o'),('blue','red','green')):\n",
    "        plt.scatter(x=x[:,0].real[y == label],\n",
    "                   y = x[:,1].real[y == label],\n",
    "                   color = color,\n",
    "                   alpha = 0.5,\n",
    "                   label = label_dict[label]\n",
    "                   )\n",
    "        \n",
    "    plt.xlabel(x_label)\n",
    "    plt.ylabel(y_label)\n",
    "    \n",
    "    leg = plt.legend(loc='upper right', fancybox=True)\n",
    "    leg.get_frame().set_alpha(0.5)\n",
    "    plt.title(title)\n",
    "\n",
    "# 可视化\n",
    "plot(iris_x, iris_y,\"original iris data\",\"sepal length(cm)\",\"sepal width(cm)\")\n",
    "plt.show()\n",
    "\n",
    "plot(pca.transform(iris_x), iris_y,\"Iris: Data projected onto first two PCA components\",\"PCA1\",\"PCA2\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x128b4c080>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# LDA的使用\n",
    "# 导入相关库\n",
    "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis\n",
    "# 实例化LDA模块\n",
    "lda = LinearDiscriminantAnalysis(n_components=2)\n",
    "# 训练数据\n",
    "x_lda_iris = lda.fit_transform(iris_x, iris_y)\n",
    "# 可视化\n",
    "plot(x_lda_iris, iris_y, \"LDA Projection\", \"LDA1\", \"LDA2\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 06 特征学习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 192,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "({'clf__C': 1.0, 'rbm__n_components': 200}, 0.91833333333333333)"
      ]
     },
     "execution_count": 192,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# RBM的使用\n",
    "# 我们使用MNIST数据集来讲解\n",
    "# 导入相关库\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.neural_network import BernoulliRBM\n",
    "from sklearn.pipeline import Pipeline\n",
    "\n",
    "# 导入数据集\n",
    "images = np.genfromtxt('./data/mnist_train.csv', delimiter=',')\n",
    "print(images.shape)\n",
    "# 划分数据\n",
    "images_x, images_y = images[:,1:], images[:,0]\n",
    "\n",
    "# 缩放特征到0-1\n",
    "images_x = images_x/255.\n",
    "\n",
    "# 用RBM学习新特征\n",
    "rbm = BernoulliRBM(random_state=0)\n",
    "lr = LogisticRegression()\n",
    "\n",
    "# 设置流水线的参数范围\n",
    "params = {'clf__C':[1e-1, 1e0, 1e1],\n",
    "          'rbm__n_components':[100, 200]\n",
    "         }\n",
    "# 创建流水线\n",
    "pipeline = Pipeline([('rbm', rbm),\n",
    "                     ('clf', lr)])\n",
    "# 实例化网格搜索类\n",
    "grid = GridSearchCV(pipeline, params)\n",
    "# 拟合数据\n",
    "grid.fit(images_x, images_y)\n",
    "# 返回最佳参数\n",
    "grid.best_params_, grid.best_score_"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
